package com.knife.file.compress;

import org.springframework.util.ObjectUtils;
import org.springframework.util.StringUtils;

import java.io.File;
import java.io.OutputStream;

/**
 * 文件压缩
 *
 * @author： 76875
 * @date： 2022/3/30 星期三 11:57
 * @description：
 * @modifiedBy：
 * @version: 1.0
 */
public interface KnifeFileCompress {

    /**
     * 压缩指定目录/文件
     *
     * @param srcFile             指定目录或者文件
     * @param zipFileName      压缩文件名
     * @param keepDirStructure 保持现有文件结构
     */
    void compress(File srcFile, String zipFileName, boolean keepDirStructure);


    /**
     * 压缩指定目录/文件 到输出流
     *
     * @param srcFile             指定目录或者文件
     * @param zipFileName      压缩文件名
     * @param outputStream     输出流
     * @param keepDirStructure 保持现有文件结构
     */
    void compress(File srcFile, String zipFileName, OutputStream outputStream, boolean keepDirStructure);

}
